
.hint { 
	position: relative; 
	display: inline-block; 

}

.hint:before, .hint:after {
	position: absolute;
	opacity: 0;
	z-index: 1000000;
	-webkit-transition: 0.3s ease;
	-moz-transition: 0.3s ease;
  	pointer-events: none;
}		

.hint:hover:before, .hint:hover:after {
	opacity: 1;
}

.hint:before {
	content: '';
	position: absolute;
	background: transparent;
	border: 6px solid transparent;
	position: absolute;
}	

.hint:after {
	content: attr(data-hint);
	background: rgba(0, 0, 0, 0.8);
			color: white;
			padding: 8px 10px;
			font-size: 12px;
	white-space: nowrap;
	box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.3);
}

/* top */

.hint-top:before {
	bottom: 100%;
	left: 50%;
	margin: 0 0 -18px 0;
	border-top-color: rgba(0, 0, 0, 0.8);
}		

.hint-top:after {
	bottom: 100%;
	left: 50%;
	margin: 0 0 -6px -10px;
}

.hint-top:hover:before {
	margin-bottom: -10px;
}

.hint-top:hover:after {
	margin-bottom: 2px;
}

/* default: bottom */

.hint-bottom:before {
	top: 100%;
	left: 50%;
	margin: -14px 0 0 0;
	border-bottom-color: rgba(0, 0, 0, 0.8);
}	

.hint-bottom:after {
	top: 100%;
	left: 50%;
	margin: -2px 0 0 -10px;
}

.hint-bottom:hover:before {
	margin-top: -6px;
}

.hint-bottom:hover:after {
	margin-top: 6px;
}

/* right */

.hint-right:before {
	left: 100%;
	bottom: 50%;
	margin: 0 0 -4px -8px;
	border-right-color: rgba(0,0,0,0.8);
}		

.hint-right:after {
	left: 100%;
	bottom: 50%;
	margin: 0 0 -13px 4px;
}

.hint-right:hover:before {
	margin: 0 0 -4px -0;
}

.hint-right:hover:after {
	margin: 0 0 -13px 12px;
}
